/*
 * hico_hs.h
 *
 * HICO Health and Status CSV file fields
 *
 * Originally written by Karen Patterson
 * January 2010
 *
 */

#include <stdlib.h>

/* HICO Health and Status CSV file record */
typedef struct HicoHSRec {
    int iiuappmode; /* IIUAPPLICATIONMODE */
    long issgpstime; /* _ISSGPSTIME */
    long lrdlhscyclecnt; /* LRDLHSCYCLECOUNT */
    int isstimepreamble; /* ISSTIMEPREAMBLE */
    int isstimecentury; /* ISSTIMECENTURY */
    int isstimeyear; /* ISSTIMEYEAR */
    int isstimemonth; /* ISSTIMEMONTH */
    int isstimeday; /* ISSTIMEDAY */
    int isstimehour; /* ISSTIMEHOUR */
    int isstimeminute; /* ISSTIMEMINUTE */
    int isstimesecond; /* ISSTIMESECOND  */
    int isstimesubsecond; /* ISSTIMESUBSECOND */
    int isstimeutcconv; /* ISSTIMEUTCCONVERSION */
    long isstimenonccsds; /* ISSTIMENONCCSDS */
    float iiuadccalvolt; /* IIUADCCALIBVOLTAGE */
    float iiutemp; /* IIUTEMP */
    int iiuwdogtimerflag; /* IIUWDOGTIMERFLAG */
    int iiulrdlmsgerr; /* IIULRDLMSGERROR */
    int iiulrdlbuffererr; /* IIULRDLBUFFERERROR */
    int iiuiiuqueueerr; /* IIUIIUQUEUEERROR */
    int iiuiiumsgerr; /* IIUIIUMSGERROR */
    int iiuicuqueueerr; /* IIUICUQUEUEERROR */
    int iiuicumsgerr; /* IIUICUMSGERROR */
    int iiuhstqueueerr; /* IIUHSTQUEUEERROR */
    int iiuraidsqueueerr; /* IIURAIDSQUEUEERROR */
    int iiuraidsmsgerr; /* IIURAIDSMSGERROR */
    int iiuicuwdogtimererr; /* IIUICUWDOGTIMERERROR */
    int iiuicusub2queueerr; /* IIUICUSUB2QUEUEERROR */
    int iiugsehicoqueueerr; /* IIUGSEHICOQUEUEERROR */
    long iiulrdlcmdopcode; /* IIULRDLCMDOPCODE */
    long iiulrdlcmdseq; /* IIULRDLCMDSEQUENCE */
    long iiuiiucmdopcode; /* IIUIIUCMDOPCODE */
    long iiuiiucmdseq; /* IIUIIUCMDSEQUENCE */
    long iiuicucmdopcode; /* IIUICUCMDOPCODE */
    long iiuicucmdseq; /* IIUICUCMDSEQUENCE */
    long iiuraidscmdopcode; /* IIURAIDSCMDOPCODE */
    long iiuraidscmdseq; /* IIURAIDSCMDSEQUENCE */
    int iiuhicocmdseq; /* IIUHICOCMDSEQUENCE */
    int iiuhicocmdopcode; /* IIUHICOCMDOPCODE */
    int iiulrtrespcode; /* IIULRTRESPONSECODE */
    long iiutimegpssecs; /* IIUTIMEGPSSECONDS */
    int iiuraidsscdone; /* IIURAIDSSCDONE */
    int iiuraidsscpps; /* IIURAIDSSCPPS */
    int iiuraidsscrun; /* IIURAIDSSCRUN */
    int iiuraidssclevevcfg; /* IIURAIDSSCLEVEVCFG */
    int iiuraidssccmdnow; /* IIURAIDSSCCMDNOW */
    int iiuraidsscpulserdy; /* IIURAIDSSCPULSERDY */
    int iiuraidssccmdavail; /* IIURAIDSSCCMDAVAIL */
    int iiuraidsscripttimer; /* IIURAIDSSCRIPTTIMER */
    int pcufltiiubootmode; /* PCUFLTIIUBOOTMODE */
    int pcuflticuwatchdog; /* PCUFLTICUWATCHDOG */
    int pcufltiiubootjump; /* PCUFLTIIUBOOTJUMP */
    int pduflthicocurrent; /* PDUFLTHICOCURRENT */
    int pcuflthicotemp; /* PCUFLTHICOTEMP */
    int pcuflthicomotor; /* PCUFLTHICOMOTOR */
    int pcuflthicopressure; /* PCUFLTHICOPRESSURE */
    int pcuflticutemp; /* PCUFLTICUTEMP */
    int pcuflticupressure; /* PCUFLTICUPRESSURE */
    int pcufltpdutemp; /* PCUFLTPDUTEMP */
    int pcuflthicolensheater; /* PCUFLTHICOLENSHEATER */
    int icupower; /* ICUPOWER */
    float icuprocessortemp; /* ICUPROCESSORTEMP */
    float icuenclosuretemp; /* ICUENCLOSURETEMP */
    float icupressure; /* ICUPRESSURE */
    float pdutemp; /* PDUTEMP */
    float pduiiuvoltage; /* PDUIIUVOLTAGE */
    float pduicuvoltage; /* PDUICUVOLTAGE */
    float pduraidsfmpvolt; /* PDURAIDSFMPVOLTAGE */
    float pduraidsplatvolt; /* PDURAIDSPLATVOLTAGE */
    float pduraidshtrvolt; /* PDURAIDSHTRVOLTAGE */
    int hstcurrentmode; /* HSTCURRENTMODE */
    float hstcameratemp; /* HSTCAMERATEMP */
    float hstprocessortemp; /* HSTPROCESSORTEMP */
    float hstvddvolt; /* HSTVDDVOLTAGE */
    float hstvccvolt; /* HSTVCCVOLTAGE */
    float hstvcc1volt; /* HSTVCC1VOLTAGE */
    float hstveevolt; /* HSTVEEVOLTAGE */
    float hstvcc2volt; /* HSTVCC2VOLTAGE */
    float hstvdd1volt; /* HSTVDD1VOLTAGE */
    float hsttccdtemp; /* HSTTCCDTEMP */
    float hsttdsptemp; /* HSTTDSPTEMP */
    int hstattitudestatusvalid; /* HSTATITUDESTATUSVALID */
    int hstattitudestatusmode; /* HSTATTITUDESTATUSMODE */
    long hstclocktime0; /* HSTCLOCKTIME0 */
    long hstclocktime1; /* HSTCLOCKTIME1 */
    long hstattitudetime0; /* HSTATTITUDETIME0 */
    long hstattitudetime1; /* HSTATTITUDETIME1 */
    float hstattitudequatx; /* HSTATTITUDEQUATX */
    float hstattitudequaty; /* HSTATTITUDEQUATY */
    float hstattitudequatz; /* HSTATTITUDEQUATZ */
    float hstattitudequats; /* HSTATTITUDEQUATS */
    long hstattmsgtime; /* HSTATTMSGTIME */
    long hsthkmsgtime; /* HSTHKMSGTIME */
    int hste0goodpktcount; /* HSTE0GOODPKTCOUNT */
    int hste0badpktcount; /* HSTE0BADPKTCOUNT */
    float isspositionx; /* ISSPOSITIONX */
    float isspositiony; /* ISSPOSITIONY */
    float isspositionz; /* ISSPOSITIONZ */
    float issvelocityx; /* ISSVELOCITYX */
    float issvelocityy; /* ISSVELOCITYY */
    float issvelocityz; /* ISSVELOCITYZ */
    float issattitudeq0; /* ISSATTITUDEQ0 */
    float issattitudeq1; /* ISSATTITUDEQ1 */
    float issattitudeq2; /* ISSATTITUDEQ2 */
    float issattitudeq3; /* ISSATTITUDEQ3 */
    long issgnctimesec; /* ISSGNCTIMESECOND */
    int issgnctimesubsec; /* ISSGNCTIMESUBSECOND */
    int issattituderatequal; /* ISSATTITUDERATEQUALITY */
    int isssolarlosqual; /* ISSSOLARLOSQUALITY */
    int issattitudequal; /* ISSATTITUDEQUALITY */
    int issorbitalstatequal; /* ISSORBITALSTATEQUALITY */
    int raidshtrbuspwr; /* RAIDSHTRBUSPOWER */
    int raidsplatbuspwr; /* RAIDSPLATBUSPOWER */
    int raidsexpbuspwr; /* RAIDSEXPBUSPOWER */
    float raidsbaseplatetemp; /* RAIDSBASEPLATETEMP */
    float raidsnegzfintemp; /* RAIDSNEGZFINTEMP */
    float raidsposzfintemp; /* RAIDSPOSZFINTEMP */
    float raids6300pmttemp; /* RAIDS6300PMTTEMP */
    float raidsfuvhv1volt; /* RAIDSFUVHV1VOLTAGE */
    float raidsfuvhv2volt; /* RAIDSFUVHV2VOLTAGE */
    float raidseuvhv1volt; /* RAIDSEUVHV1VOLTAGE */
    float raidseuvhv2volt; /* RAIDSEUVHV2VOLTAGE */
    float raidsfmpcurrent; /* RAIDSFMPCURRENT */
    float raidsexpcurrent; /* RAIDSEXPCURRENT */
    float raidsmotorcurrent; /* RAIDSMOTORCURRENT */
    float raidsheatercurrent; /* RAIDSHEATERCURRENT */
    int hicolensheaterpwr; /* HICOLENSHEATERPOWER */
    int hicocamerapwr; /* HICOCAMERAPOWER */
    float hicospectemp; /* HICOSPECTROMTEMP */
    float hicolenstemp; /* HICOLENSTEMP */
    float hicomotortemp; /* HICOMOTORTEMP */
    float hicocamerapressure; /* HICOCAMREAPRESSURE */
    float hicomotorvolt; /* HICOMOTORVOLTAGE */
    float hicocameravolt; /* HICOCAMERAVOLTAGE */
    float hicocameratemp; /* HICOCAMERATEMP */
    float hicocameracurrent; /* HICOCAMERACURRENT */
    int hicomotorpwr; /* HICOMOTORPOWER */
    int hicoencoderpwr; /* HICOENCODERPOWER */
    int hicomotorlimit1; /* HICOMOTORLIMIT1 */
    int hicomotorlimit2; /* HICOMOTORLIMIT2 */
    int hicomotorenable; /* HICOMOTORENABLE */
    int hicomotorstopstate; /* HICOMOTORSTOPSTATE */
    int hicomotordir; /* HICOMOTORDIRECTION */
    int hicomotoormzer; /* HICOMOTORMZER */
    int hicomotorstepdone; /* HICOMOTORSTEPDONE */
    int hicoencoderreset; /* HICOENCODERRESET */
    int hicomotorcalcomplete; /* HICOMOTORCALCOMPLETE */
    int hicomotorcalprogress; /* HICOMOTORCALPROGRESS */
    int hicoencoderpos; /* HICOENCODERPOSITION */
    int hicoencoderstep; /* HICOENCODERSTEP */
    int icum0timelock; /* ICUM0TIMELOCK */
    long icutimegpssecs; /* ICUTIMEGPSSECONDS */
    int icutimeisscentury; /* ICUTIMEISSCENTURY */
    int icutimeissyear; /* ICUTIMEISSYEAR */
    int icutimeissmonth; /* ICUTIMEISSMONTH */
    int icutimeissday; /* ICUTIMEISSDAY */
    int icutimeisshour; /* ICUTIMEISSHOUR */
    int icutimeissmin; /* ICUTIMEISSMINUTE */
    int icutimeisssec; /* ICUTIMEISSSECOND */
    long icutimeisssubsec; /* ICUTIMEISSSUBSECOND */
    long icutimehwregsec; /* ICUTIMEHWREGSECOND */
    long icutimehwregsubsec; /* ICUTIMEHWREGSUBSECOND */
    int icum0cmdexecute; /* ICUM0CMDEXECUTE */
    int icum0cameraframes; /* ICUM0CAMERAFRAMES */
    int icum0diskwrite; /* ICUM0DISKWRITE */
    int icum0scenedownlink; /* ICUM0SCENEDOWNLINK */
    long icuhsseqcount0; /* ICUHSSEQCOUNT0 */
    long icuhsseqcount1; /* ICUHSSEQCOUNT1 */
    int icuerrcount; /* ICUERRORCOUNT */
    int icuerrhistory0; /* ICUERRORHISTORY0 */
    int icuerrhistory1; /* ICUERRORHISTORY1 */
    int icuerrhistory2; /* ICUERRORHISTORY2 */
    int icuerrhistory3; /* ICUERRORHISTORY3 */
    int icucmdexecount; /* ICUCMDEXECOUNT */
    long icuopcodehistory0; /* ICUOPCODEHISTORY0 */
    long icuopcodehistory1; /* ICUOPCODEHISTORY1 */
    int icucmdqueuecount; /* ICUCMDQUEUECOUNT */
    int icucurrentcmdid; /* ICUCURRENTCMDID */
    int icucmdidhistory0; /* ICUCMDIDHISTORY0 */
    int icucmdidhistory1; /* ICUCMDIDHISTORY1 */
    int icucmdidhistory2; /* ICUCMDIDHISTORY2 */
    int icucmdidhistory3; /* ICUCMDIDHISTORY3 */
    int icufirstcmdqueueid; /* ICUFIRSTCMDQUEUEID */
    int iculastcmdqueueid; /* ICULASTCMDQUEUEID */
    int icucurrentdownlinkid; /* ICUCURRENTDOWNLINKID */
    int icufirstscenestoreid; /* ICUFIRSTSCENESTOREID */
    int iculastscenestoreid; /* ICULASTSCENESTOREID */
    int icescenequeuecount; /* ICUSCENEQUEUECOUNT */
    int icufirstscenequeueid; /* ICUFIRSTSCENEQUEUEID */
    int iculastscenequeueid; /* ICULASTSCENEQUEUEID */
    int icumrdloverflowcount; /* ICUMRDLOVERFLOWCOUNT */
    long icutimemsgcount; /* ICUTIMEMSGCOUNT */
    int icuhicocmdmsgcount; /* ICUHICOCMDMSGCOUNT */
    long icuhicostatusmsgcount; /* ICUHICOSTATUSMSGCOUNT */
    long icubcastancilpktcount; /* ICUBCASTANCILPKTCOUNT */
    int icuhicocmdseqcount; /* ICUHICOCMDSEQCOUNT */
    int icuhicocmdopcode; /* ICUHICOCMDOPCODE */
    int icumrdldownlinkrate; /* ICUMRDLDOWNLINKRATE */
    unsigned long icuiiucmdpktcount; /* ICUIIUCMDPKTCOUNT */
    unsigned long icumrdlpktcount; /* ICUMRDLPKTCOUNT */
    unsigned long icuenetframerecvcount; /* ICUENETFRAMERECVCOUNT */
    unsigned long icuenetframesendcount; /* ICUENETFRAMESENDCOUNT */
    unsigned long icuenetcollisioncount; /* ICUENETCOLLISIONCOUNT */
    unsigned long icumemoryusage; /* ICUMEMORYUSAGE */
    unsigned long icuhicoframecount; /* ICUHICOFRAMECOUNT */
    unsigned long usgnccoarsetimetag; /* USGNC_PS_Pointing_Coarse_Time_Tag */
    int usgncfinetimetag; /* USGNC_PS_PD_Fine_Pointing_Fine_Time_Tag */
    float usgncinertposvecx; /* USGNC_PS_Pointing_Inert_Posn_VectorX */
    float usgncinertposvecy; /* USGNC_PS_Pointing_Inert_Posn_VectorY */
    float usgncinertposvecz; /* USGNC_PS_Pointing_Inert_Posn_VectorZ */
    float usgncinertvelvecx; /* USGNC_PS_Pointing_Inert_Vel_VectorX */
    float usgncinertvelvecy; /* USGNC_PS_Pointing_Inert_Vel_VectorY */
    float usgncinertvelvecz; /* USGNC_PS_Pointing_Inert_Vel_VectorZ */
    float usgncinertratex; /* USGNC_PS_Pointing_Current_Inert_Rate_Vector_X */
    float usgncinertratey; /* USGNC_PS_Pointing_Current_Inert_Rate_Vector_Y */
    float usgncinertratez; /* USGNC_PS_Pointing_Current_Inert_Rate_Vector_Z */
    float usgnccurrentattq0; /* USGNC_PS_Pointing_Current_Inert_Att_Quatrn_0 */
    float usgnccurrentattq1; /* USGNC_PS_Pointing_Current_Inert_Att_Quatrn_1 */
    float usgnccurrentattq2; /* USGNC_PS_Pointing_Current_Inert_Att_Quatrn_2 */
    float usgnccurrentattq3; /* USGNC_PS_Pointing_Current_Inert_Att_Quatrn_3 */
    float usgnclvlhattq0; /* USGNC_PS_Pointing_LVLH_Att_Quatrn_0 */
    float usgnclvlhattq1; /* USGNC_PS_Pointing_LVLH_Att_Quatrn_1 */
    float usgnclvlhattq2; /* USGNC_PS_Pointing_LVLH_Att_Quatrn_2 */
    float usgnclvlhattq3; /* USGNC_PS_Pointing_LVLH_Att_Quatrn_3 */
    int usgncstatevecqual; /* USGNC_PS_State_Vector_Qual */
    int usgncattquatqual; /* USGNC_PS_Pointing_Att_Quatrn_Qual */
    int usgncsolarlosqual; /* USGNC_PS_Pointing_SolarLOS_Qual */
    int usgncattratequal; /* USGNC_PS_Pointing_AttRate_Qual */
    float usgncctrsposvecx; /* USGNC_PS_Pointing_CTRS_Posn_Vector_X */
    float usgncctrsposvecy; /* USGNC_PS_Pointing_CTRS_Posn_Vector_Y */
    float usgncctrsposvecz; /* USGNC_PS_Pointing_CTRS_Posn_Vector_Z */
    float usgncctrsvelvecx; /* USGNC_PS_Pointing_CTRS_Vel_Vector_X */
    float usgncctrsvelvecy; /* USGNC_PS_Pointing_CTRS_Vel_Vector_Y */
    float usgncctrsvelvecz; /* USGNC_PS_Pointing_CTRS_Vel_Vector_Z */
    float usgncctrsattq0; /* USGNC_PS_Pointing_CTRS_Att_Quatrn_0 */
    float usgncctrsattq1; /* USGNC_PS_Pointing_CTRS_Att_Quatrn_1 */
    float usgncctrsattq2; /* USGNC_PS_Pointing_CTRS_Att_Quatrn_2 */
    float usgncctrsattq3; /* USGNC_PS_Pointing_CTRS_Att_Quatrn_3 */
} HicoHSRec;
